%% main.tex --- файл-обертка для диплома

\documentclass[russian,utf8,simple,floatsection]{eskdtext} 

\include{defs}  % вставляем содержимое служебных инструкций из defs.tex

\setcounter{section}{1}

\ESKDcolumnII{Выбор и обоснование средств проестирование}
\begin{document}
\newcommand{\target}{Выбор инструмента} % Название цели
% Критерии

\newcommand{\critOne}{Качество документации}
\newcommand{\critOneAbout}{
  На сколько полно описана работа с данной альтернативой
}

\newcommand{\critTwo}{Скорость разработки}
\newcommand{\critTwoAbout}{
  Данный критерий показывает, на сколько быстро можно создать
  коннечный продукт, в сравнении с другим.
}

\newcommand{\critThree}{Рас\-про\-стра\-нен\-ность}
\newcommand{\critThreeAbout}{
  Как легко найти альтернативу на серверах для хостинга.
}

\newcommand{\critFour}{Абстракция}
\newcommand{\critFourAbout}{
  На сколько удобно выбрана абстракция для разработки.
}
% Альтернативы
\newcommand{\altOne}{Pylons}
\newcommand{\altTwo}{web2py}
\newcommand{\altThree}{Ruby On Rails}
\newcommand{\altFour}{TurboGears}
\section{Выбор и обоснование средств проестирование.}

Так как одно из требований к ПО это переносимость то из множества
языков программирования можно выделить следующие: \altOne ,
\altTwo,\altThree,\altFour.

Для выбора ЯП применим метод анализа иерархий.
Выберем следующие критерии:
\begin{enumerate}
\item \critOne –  \critOneAbout
\item \critTwo -   \critTwoAbout
\item \critThree -  \critThreeAbout
\item \critFour – \critFourAbout
\end{enumerate}

В результате получилась иерархия, представленная на рисунке \ref{fig:sppr}
Суждения ЛПР представлены в таблицах~[\ref{tab:one}-\ref{tab:five}].
\begin{figure}[!h]
  \centering
  \includegraphics[angle=0, width=\textwidth]{sppr}
  \caption{Иерархия  проблемы}
\label{fig:sppr}
\end{figure}

\begin{table}[!h]
  \centering
  \caption{Веса критериев относительно цели}
  \begin{tabular}[h!]{|p{0.2\textwidth}|p{0.1\textwidth}|p{0.1\textwidth}|p{0.20\textwidth}|p{0.15\textwidth}|p{0.08\textwidth}|}
    \hline
    Выбор ЯП&\critOne&\critTwo&\critThree&\critFour&Веса
    \\ \hline
    \critOne&1&1/3&1/2&2&17.18
    \\ \hline
    \critTwo&3&1&3&2&46.59
    \\ \hline
    \critThree&2&1/3&1&1/2&17.18
    \\ \hline
    \critFour&1/2&1/2&2&1&19.02
    \\ \hline
  \end{tabular}
  \label{tab:one}
\end{table}

\begin{table}[!h]
  \centering
  \caption{Веса альтернатив относительно критерия <<\critOne>>}
  \begin{tabular}[h!]{|p{0.2\textwidth}|p{0.1\textwidth}|p{0.1\textwidth}|p{0.20\textwidth}|p{0.15\textwidth}|p{0.08\textwidth}|}
    \hline
    \critOne&\altOne&\altTwo&\altThree&\altFour&Веса
    \\ \hline
    \altOne&1&1&1/3&1/2&14.11
    \\ \hline
    \altTwo&1&1&1/3&1/2&14.11
    \\ \hline
    \altThree&3&3&1&3&45.5
    \\ \hline
    \altFour&2&2&1/3&1&26.27
    \\ \hline
  \end{tabular}
  \label{tab:two}
\end{table}

\begin{table}[!h]
  \centering
  \caption{Веса альтернатив относительно критерия <<\critTwo>>}
  \begin{tabular}[h!]{|p{0.2\textwidth}|p{0.1\textwidth}|p{0.1\textwidth}|p{0.20\textwidth}|p{0.15\textwidth}|p{0.08\textwidth}|}
    \hline
    \critTwo&\altOne&\altTwo&\altThree&\altFour&Веса
    \\ \hline
    \altOne&1&1/2&1/2&1/4&9.854
    \\ \hline
    \altTwo&2&1&1/3&1/4&12.59
    \\ \hline
    \altThree&2&3&1&1/4&21.81
    \\ \hline
    \altFour&4&3&4&1&55.74
    \\ \hline
  \end{tabular}
  \label{tab:three}
\end{table}

\begin{table}[!h]
  \centering
  \caption{Веса альтернатив относительно критерия <<\critThree>>}
  \begin{tabular}[h!]{|p{0.2\textwidth}|p{0.1\textwidth}|p{0.1\textwidth}|p{0.20\textwidth}|p{0.15\textwidth}|p{0.08\textwidth}|}
    \hline
    \critThree&\altOne&\altTwo&\altThree&\altFour&Веса
    \\ \hline
    \altOne&1&3&2&1/3&30.10
    \\ \hline
    \altTwo&1/3&1&1/4&1/3&10.33
    \\ \hline
    \altThree&2&4&1&3&27.20
    \\ \hline
    \altFour&3&3&1/3&1&32.35
    \\ \hline
  \end{tabular}
  \label{tab:four}
\end{table}

\begin{table}[!h]
  \centering
  \caption{Веса альтернатив относительно критерия <<\critFour>>}
  \begin{tabular}[h!]{|p{0.2\textwidth}|p{0.1\textwidth}|p{0.1\textwidth}|p{0.20\textwidth}|p{0.15\textwidth}|p{0.08\textwidth}|}
    \hline
    \critThree&\altOne&\altTwo&\altThree&\altFour&Веса
    \\ \hline
    \altOne&1&3&3&1/2&32.98
    \\ \hline
    \altTwo&1/3&1&1&1/2&14.46
    \\ \hline
    \altThree&1/3&1&1&1/2&14.46
    \\ \hline
    \altFour&2&2&2&1&38.08
    \\ \hline
  \end{tabular}
  \label{tab:five}
\end{table}

В результате альтернативы получили следующие оценки:
\begin{enumerate}
\item \altOne - 41.57
\item \altTwo - 30.61
\item \altThree - 15.45
\item \altFour - 12.34
\end{enumerate}

Pylons — программный каркас для разработки веб-приложений (web
application framework) с открытым исходным кодом, написанный на языке
Python. В нем широко используется стандарт WSGI, что способствует
эффективности повторного использования кода и распределению
функциональности приложения по разным модулям.

Pylons является новейшим по дате возникновения программных каркасов,
написанных на Python, (см. также более ранние разработки Django и
TurboGears). Он создавался с оглядкой на особенности, плюсы и минусы
уже существующих веб-фреймворков, таких как Django, Ruby on Rails,
Turbogears и других, и попытался вобрать в себя лучшее из них.

Однако, так как он полностью состоит из WSGI-приложений и прослоек
(middleware), а не только на низких уровнях, как другие
Python-фреймворки, он оказывается очень стройным и гибким с точки
зрения архитектуры и возможности изменения компонентов и добавления
функционала. Pylons использует два компонента, являющихся прямыми
аналогами компонентов Ruby on Rails, реализованными на Python: Routes
и WebHelpers.

В качестве СУБД будет использоваться MySQL-  свободная система
управления базами данных (СУБД). MySQL является собственностью
компании Sun Microsystems, осуществляющей разработку и поддержку
приложения. Распространяется под GNU General Public License и под
собственной коммерческой лицензией, на выбор. Помимо этого
разработчики создают функциональность по заказу лицензионных
пользователей, именно благодаря такому заказу почти в самых ранних
версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в
LAMP. Обычно MySQL используется в качестве сервера, к которому
обращаются локальные или удалённые клиенты, однако в дистрибутив
входит библиотека внутреннего сервера, позволяющая включать MySQL в
автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества
типов таблиц: пользователи могут выбрать как таблицы типа MyISAM,
поддерживающие полнотекстовый поиск, так и таблицы InnoDB,
поддерживающие транзакции на уровне отдельных записей. Более того,
СУБД MySQL поставляется со специальным типом таблиц EXAMPLE,
демонстрирующим принципы создания новых типов таблиц. Благодаря
открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно
появляются новые типы таблиц.
\end{document}
